# This file compiles to package.json scripts.
# When you add or modify anything, you *MUST* run:
#      npm run yamscripts
# to compile your changes.

scripts:
  # Run the activity-stream mochitests
  mochitest: (cd $npm_package_config_mc_dir && ./mach mochitest browser/components/newtab/test/browser --headless)

  # Run the activity-stream mochitests with the browser toolbox debugger.
  # Often handy in combination with adding a "debugger" statement in your
  # mochitest somewhere.
  mochitest-debug: (cd $npm_package_config_mc_dir && ./mach mochitest --jsdebugger browser/components/newtab/test/browser)

# bundle: Build all assets for activity stream
  bundle:
    locales: pontoon-to-json --src $npm_package_config_locales_dir --dest data
    webpack: webpack --config webpack.system-addon.config.js
    css: node-sass content-src/styles -o css
    html: rimraf prerendered && node ./bin/render-activity-stream-html.js

# buildmc: Export code to mozilla central
  buildmc:
    pre: rimraf $npm_package_config_mc_dir/browser/components/newtab/
    bundle: => bundle
    copy: rsync --exclude-from .mcignore -a . $npm_package_config_mc_dir/browser/components/newtab/
    stringsExport: cp $npm_package_config_locales_dir/$npm_package_config_default_locale/strings.properties $npm_package_config_mc_dir/browser/locales/$npm_package_config_default_locale/chrome/browser/activity-stream/newtab.properties
    copyPingCentre: cpx "ping-centre/PingCentre.jsm" $npm_package_config_mc_dir/browser/modules

# builduplift: Build and export to mozilla central for uplifts without exporting strings to browser/locales
  builduplift:
    pre: =>prebuildmc
    bundle: => bundle
    copy: =>buildmc:copy

# buildlibrary: Export about:library code to mozilla-central - intentionally not included in buildmc for now
  buildlibrary:
    webpack: webpack --config webpack.aboutlibrary.config.js
    css: node-sass --source-map true --source-map-contents content-src/aboutlibrary -o aboutlibrary/content
    copy: cpx "aboutlibrary/**/{,.}*" $npm_package_config_mc_dir/browser/components/library

# startmc: Automatically rebuild/export to mozilla central when files are changed. NOTE: Includes sourcemaps, do not use for profiling/perf testing.
  startmc:
    _parallel: true
    pre: =>buildmc
    # This copies only the system addon sub-folder; changing anything outside of it will need a full rebuild.
    copy: cpx "{{,.}*,!(node_modules)/**/{,.}*}" $npm_package_config_mc_dir/browser/components/newtab/ -w
    copyPingCentre: =>buildmc:copyPingCentre -- -w
    webpack: =>bundle:webpack -- --env.development -w
    css: =>bundle:css && =>bundle:css -- --source-map-embed --source-map-contents -w

  # importmc: Import changes from mc to github repo
  importmc: rsync --exclude-from .mcignore -a $npm_package_config_mc_dir/browser/components/newtab/ .

  testmc:
    lint: =>lint
    build: =>bundle:webpack && =>bundle:locales
    unit: karma start karma.mc.config.js

  tddmc: karma start karma.mc.config.js --tdd

  debugcoverage: open logs/coverage/index.html

# lint: Run eslint and sass-lint
  lint:
    eslint: eslint --ext=.js,.jsm,.jsx .
    sasslint: sass-lint -v -q

# strings-import: Replace local strings with those from l10n-central
  strings-import: node ./bin/strings-import.js

# test: Run all tests once
  test: =>testmc

# tdd: Run content tests continuously
  tdd: =>tddmc

  # Utility scripts for use when vendoring in Node packages
  vendor:
    react: node ./bin/vendor-react.js
